loading packages

suppressPackageStartupMessages(library(tidyverse))
suppressPackageStartupMessages(library(sjPlot))
suppressPackageStartupMessages(library(lme4))
suppressPackageStartupMessages(library(performance))
suppressPackageStartupMessages(library(nortest))

options(scipen = 999)

importing dataset

dat_model <- read_csv("data/data_model.csv")

baseline model

# buliding model
baseline_model <-
  lmer(NA_sum ~ age + gender + beep + day + 
      event_unpleasantness_centered +
      (event_unpleasantness_centered | id),
      data = dat_model
  )


# model outputs
summary(baseline_model)
## Linear mixed model fit by REML ['lmerMod']
## Formula: NA_sum ~ age + gender + beep + day + event_unpleasantness_centered +  
##     (event_unpleasantness_centered | id)
##    Data: dat_model
## 
## REML criterion at convergence: 33534.4
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -4.5677 -0.4675 -0.0862  0.2792  7.6403 
## 
## Random effects:
##  Groups   Name                          Variance Std.Dev. Corr
##  id       (Intercept)                   0.86360  0.9293       
##           event_unpleasantness_centered 0.03975  0.1994   0.63
##  Residual                               0.56096  0.7490       
## Number of obs: 14265, groups:  id, 247
## 
## Fixed effects:
##                                 Estimate Std. Error t value
## (Intercept)                    0.3938425  0.1654936   2.380
## age                           -0.0085250  0.0039792  -2.142
## genderMale                    -0.2610865  0.1350536  -1.933
## genderOther                   -0.1046100  0.7399324  -0.141
## beep                           0.0052154  0.0029603   1.762
## day                           -0.0047454  0.0008428  -5.631
## event_unpleasantness_centered  0.3095254  0.0150901  20.512
## 
## Correlation of Fixed Effects:
##             (Intr) age    gndrMl gndrOt beep   day   
## age         -0.912                                   
## genderMale  -0.093 -0.066                            
## genderOther -0.039  0.016  0.031                     
## beep        -0.076  0.002  0.000  0.001              
## day         -0.045  0.000  0.003 -0.003  0.008       
## evnt_nplsn_  0.202  0.001 -0.046  0.010  0.034  0.012
tab_model(baseline_model, show.std = T)
  NA sum
Predictors Estimates std. Beta CI standardized CI p
(Intercept) 0.39 0.13 0.07 – 0.72 0.02 – 0.23 0.017
age -0.01 -0.09 -0.02 – -0.00 -0.18 – -0.01 0.032
gender [Male] -0.26 -0.21 -0.53 – 0.00 -0.42 – 0.00 0.053
gender [Other] -0.10 -0.08 -1.55 – 1.35 -1.25 – 1.09 0.888
beep 0.01 0.01 -0.00 – 0.01 -0.00 – 0.02 0.078
day -0.00 -0.03 -0.01 – -0.00 -0.04 – -0.02 <0.001
event unpleasantness
centered
0.31 0.32 0.28 – 0.34 0.29 – 0.35 <0.001
Random Effects
σ2 0.56
τ00 id 0.86
τ11 id.event_unpleasantness_centered 0.04
ρ01 id 0.63
ICC 0.62
N id 247
Observations 14265
Marginal R2 / Conditional R2 0.111 / 0.665
# assumption checks
check_collinearity(baseline_model)
plot_model(baseline_model, type = "diag")
## Warning in checkMatrixPackageVersion(): Package version inconsistency detected.
## TMB was built with Matrix version 1.5.3
## Current Matrix version is 1.4.1
## Please re-install 'TMB' from source using install.packages('TMB', type = 'source') or ask CRAN for a binary version of 'TMB' matching CRAN's 'Matrix' package
## Warning in checkDepPackageVersion(dep_pkg = "TMB"): Package version inconsistency detected.
## glmmTMB was built with TMB version 1.9.1
## Current TMB version is 1.9.2
## Please re-install glmmTMB from source or restore original 'TMB' package (see '?reinstalling' for more information)
## [[1]]
## `geom_smooth()` using formula 'y ~ x'

## 
## [[2]]
## [[2]]$id
## `geom_smooth()` using formula 'y ~ x'

## 
## 
## [[3]]

## 
## [[4]]
## `geom_smooth()` using formula 'y ~ x'

#check_model(baseline_model)


# visualizing predicted values
plot_model(baseline_model)

# goodness of fit indicators
AIC_baseline <- AIC(baseline_model)
BIC_baseline <- BIC(baseline_model)


# normality test for residuals
baseline_model_residuals <- residuals(baseline_model)
lillie.test(baseline_model_residuals)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  baseline_model_residuals
## D = 0.14284, p-value < 0.00000000000000022
# normality test for NA_sum
lillie.test(dat_model$NA_sum)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  dat_model$NA_sum
## D = 0.21912, p-value < 0.00000000000000022

trait rumination

# building model
trait_model <-
  lmer(
    NA_sum ~ age + gender + beep + day +
    event_unpleasantness_centered * trait_rumination +
    (event_unpleasantness_centered | id),
      data = dat_model
    )


# model outputs
summary(trait_model)
## Linear mixed model fit by REML ['lmerMod']
## Formula: NA_sum ~ age + gender + beep + day + event_unpleasantness_centered *  
##     trait_rumination + (event_unpleasantness_centered | id)
##    Data: dat_model
## 
## REML criterion at convergence: 33508.9
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -4.5777 -0.4677 -0.0848  0.2800  7.6410 
## 
## Random effects:
##  Groups   Name                          Variance Std.Dev. Corr
##  id       (Intercept)                   0.77855  0.8824       
##           event_unpleasantness_centered 0.03429  0.1852   0.59
##  Residual                               0.56096  0.7490       
## Number of obs: 14265, groups:  id, 247
## 
## Fixed effects:
##                                                  Estimate Std. Error t value
## (Intercept)                                     0.2160764  0.1728315   1.250
## age                                            -0.0047372  0.0041325  -1.146
## genderMale                                     -0.1152025  0.1390809  -0.828
## genderOther                                     0.0497428  0.7339194   0.068
## beep                                            0.0051633  0.0029599   1.744
## day                                            -0.0047750  0.0008425  -5.668
## event_unpleasantness_centered                   0.3053063  0.0143028  21.346
## trait_rumination                                0.3551413  0.0664066   5.348
## event_unpleasantness_centered:trait_rumination  0.0779311  0.0150512   5.178
## 
## Correlation of Fixed Effects:
##             (Intr) age    gndrMl gndrOt beep   day    evnt__ trt_rm
## age         -0.925                                                 
## genderMale  -0.190  0.040                                          
## genderOther -0.071  0.047  0.059                                   
## beep        -0.069 -0.001 -0.002  0.000                            
## day         -0.041 -0.002  0.002 -0.003  0.008                     
## evnt_nplsn_  0.159  0.011 -0.036  0.013  0.035  0.011              
## trait_rmntn -0.308  0.281  0.289  0.082 -0.006 -0.005 -0.014       
## evnt_npl_:_  0.010 -0.018  0.030 -0.015  0.003 -0.003 -0.078  0.457
tab_model(trait_model, show.std = T)
  NA sum
Predictors Estimates std. Beta CI standardized CI p std. p
(Intercept) 0.22 0.11 -0.12 – 0.55 0.01 – 0.21 0.211 0.033
age -0.00 -0.05 -0.01 – 0.00 -0.14 – 0.04 0.252 0.252
gender [Male] -0.12 -0.09 -0.39 – 0.16 -0.31 – 0.13 0.408 0.408
gender [Other] 0.05 0.04 -1.39 – 1.49 -1.12 – 1.20 0.946 0.946
beep 0.01 0.01 -0.00 – 0.01 -0.00 – 0.02 0.081 0.081
day -0.00 -0.03 -0.01 – -0.00 -0.04 – -0.02 <0.001 <0.001
event unpleasantness
centered
0.31 0.32 0.28 – 0.33 0.29 – 0.35 <0.001 <0.001
trait rumination 0.36 0.28 0.22 – 0.49 0.18 – 0.38 <0.001 <0.001
event unpleasantness
centered × trait
rumination
0.08 0.08 0.05 – 0.11 0.05 – 0.11 <0.001 <0.001
Random Effects
σ2 0.56
τ00 id 0.78
τ11 id.event_unpleasantness_centered 0.03
ρ01 id 0.59
ICC 0.60
N id 247
Observations 14265
Marginal R2 / Conditional R2 0.188 / 0.674
# assumption checks
check_collinearity(trait_model)
plot_model(trait_model, type = "diag")
## [[1]]
## `geom_smooth()` using formula 'y ~ x'

## 
## [[2]]
## [[2]]$id
## `geom_smooth()` using formula 'y ~ x'

## 
## 
## [[3]]

## 
## [[4]]
## `geom_smooth()` using formula 'y ~ x'

#check_model(trait_model)


# visualizing predicted values
plot_model(trait_model)

# goodness of fit indicators
AIC_trait <- AIC(trait_model)
BIC_trait <- BIC(trait_model)

coefplot for trait rumination

coefplot_trait <- 
  plot_model(trait_model,
             type = "std",
             rm.terms = c("age", "gender [Male]", "gender [Other]", "beep", "day", "event_unpleasantness_centered"),
             ci.lvl = 0.95,
             std.est = T,
             title = "",
             show.values = TRUE,
             colors = "black",
             axis.labels = c("Trait rumination * Perceived stress", "Trait rumination"),
             axis.title = "Standardized β coefficients"
             ) +
             ylim(0, 0.6) +
             theme_minimal() +
             theme(axis.line = element_line(size = .3),
                   axis.text = element_text(size = 10, color = "black"),
                   axis.title.x = element_text(size = 12, color = "black")
                   )
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.
coefplot_trait

mean state rumination

# building model
mean_state_model <-
  lmer(
    NA_sum ~ age + gender + beep + day +
    event_unpleasantness_centered * mean_state_rumi_grand_centered +
    (event_unpleasantness_centered | id),
    data = dat_model
    )

# model outputs
summary(mean_state_model)
## Linear mixed model fit by REML ['lmerMod']
## Formula: NA_sum ~ age + gender + beep + day + event_unpleasantness_centered *  
##     mean_state_rumi_grand_centered + (event_unpleasantness_centered |      id)
##    Data: dat_model
## 
## REML criterion at convergence: 33378.9
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -4.5871 -0.4680 -0.0864  0.2809  7.6518 
## 
## Random effects:
##  Groups   Name                          Variance Std.Dev. Corr
##  id       (Intercept)                   0.42164  0.6493       
##           event_unpleasantness_centered 0.03091  0.1758   0.51
##  Residual                               0.56109  0.7491       
## Number of obs: 14265, groups:  id, 247
## 
## Fixed effects:
##                                                                Estimate
## (Intercept)                                                   0.1402751
## age                                                          -0.0032922
## genderMale                                                   -0.0501490
## genderOther                                                   0.1741375
## beep                                                          0.0049676
## day                                                          -0.0048631
## event_unpleasantness_centered                                 0.3068529
## mean_state_rumi_grand_centered                                0.9105524
## event_unpleasantness_centered:mean_state_rumi_grand_centered  0.1227505
##                                                              Std. Error t value
## (Intercept)                                                   0.1291530   1.086
## age                                                           0.0031130  -1.058
## genderMale                                                    0.1062399  -0.472
## genderOther                                                   0.5730614   0.304
## beep                                                          0.0029591   1.679
## day                                                           0.0008409  -5.783
## event_unpleasantness_centered                                 0.0138163  22.209
## mean_state_rumi_grand_centered                                0.0598964  15.202
## event_unpleasantness_centered:mean_state_rumi_grand_centered  0.0188286   6.519
## 
## Correlation of Fixed Effects:
##             (Intr) age    gndrMl gndrOt beep   day    evnt__ mn____
## age         -0.922                                                 
## genderMale  -0.129 -0.027                                          
## genderOther -0.053  0.028  0.045                                   
## beep        -0.095 -0.001 -0.002  0.001                            
## day         -0.055 -0.004  0.005 -0.004  0.007                     
## evnt_nplsn_  0.139  0.005 -0.033  0.010  0.036  0.011              
## mn_stt_rm__ -0.182  0.155  0.200  0.061 -0.009 -0.001 -0.015       
## evnt__:____  0.016 -0.021  0.001 -0.012  0.004 -0.002 -0.063  0.387
tab_model(mean_state_model, show.std = T)
  NA sum
Predictors Estimates std. Beta CI standardized CI p
(Intercept) 0.14 0.09 -0.11 – 0.39 0.01 – 0.16 0.277
age -0.00 -0.04 -0.01 – 0.00 -0.10 – 0.03 0.290
gender [Male] -0.05 -0.04 -0.26 – 0.16 -0.21 – 0.13 0.637
gender [Other] 0.17 0.14 -0.95 – 1.30 -0.77 – 1.05 0.761
beep 0.00 0.01 -0.00 – 0.01 -0.00 – 0.02 0.093
day -0.00 -0.03 -0.01 – -0.00 -0.04 – -0.02 <0.001
event unpleasantness
centered
0.31 0.32 0.28 – 0.33 0.29 – 0.35 <0.001
mean state rumi grand
centered
0.91 0.52 0.79 – 1.03 0.45 – 0.58 <0.001
event unpleasantness
centered × mean state
rumi grand centered
0.12 0.09 0.09 – 0.16 0.06 – 0.12 <0.001
Random Effects
σ2 0.56
τ00 id 0.42
τ11 id.event_unpleasantness_centered 0.03
ρ01 id 0.51
ICC 0.46
N id 247
Observations 14265
Marginal R2 / Conditional R2 0.372 / 0.659
# assumption checks
check_collinearity(mean_state_model)
plot_model(mean_state_model, type = "diag")
## [[1]]
## `geom_smooth()` using formula 'y ~ x'

## 
## [[2]]
## [[2]]$id
## `geom_smooth()` using formula 'y ~ x'

## 
## 
## [[3]]

## 
## [[4]]
## `geom_smooth()` using formula 'y ~ x'

#check_model(mean_state_model)


# visualizing predicted values
plot_model(mean_state_model)

# goodness of fit indicators
AIC_mean_state <- AIC(mean_state_model)
BIC_mean_state <- BIC(mean_state_model)

coefplot for mean state rumination

coefplot_mean_state <- 
  plot_model(mean_state_model,
             type = "std",
             rm.terms = c("age", "gender [Male]", "gender [Other]", "beep", "day", "event_unpleasantness_centered"),
             ci.lvl = 0.95,
             std.est = T,
             title = "",
             show.values = TRUE,
             colors = "black",
             axis.labels = c("Mean state rumination * Perceived stress", "Mean state rumination"),
             axis.title = "Standardized β coefficients"
             ) +
             ylim(0, 0.6) +
             theme_minimal() +
             theme(axis.line = element_line(size = .3),
                   axis.text = element_text(size = 10, color = "black"),
                   axis.title.x = element_text(size = 12, color = "black")
                   )
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.
coefplot_mean_state

state rumination

# building model
state_model <-
  lmer(
    NA_sum ~ age + gender + beep + day +
    event_unpleasantness_centered * rumination_centered +
    (event_unpleasantness_centered | id), data = dat_model
    )


# model outputs
summary(state_model)
## Linear mixed model fit by REML ['lmerMod']
## Formula: NA_sum ~ age + gender + beep + day + event_unpleasantness_centered *  
##     rumination_centered + (event_unpleasantness_centered | id)
##    Data: dat_model
## 
## REML criterion at convergence: 31593.7
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -4.5625 -0.4499 -0.0771  0.2846  8.2712 
## 
## Random effects:
##  Groups   Name                          Variance Std.Dev. Corr
##  id       (Intercept)                   0.86414  0.9296       
##           event_unpleasantness_centered 0.02793  0.1671   0.66
##  Residual                               0.48929  0.6995       
## Number of obs: 14265, groups:  id, 247
## 
## Fixed effects:
##                                                     Estimate Std. Error t value
## (Intercept)                                        0.4238103  0.1637515   2.588
## age                                               -0.0090868  0.0039334  -2.310
## genderMale                                        -0.2758397  0.1338196  -2.061
## genderOther                                       -0.1560593  0.7273910  -0.215
## beep                                               0.0009888  0.0027650   0.358
## day                                               -0.0045018  0.0007871  -5.720
## event_unpleasantness_centered                      0.2545536  0.0129058  19.724
## rumination_centered                                0.2651076  0.0066691  39.751
## event_unpleasantness_centered:rumination_centered  0.0386275  0.0038579  10.013
## 
## Correlation of Fixed Effects:
##             (Intr) age    gndrMl gndrOt beep   day    evnt__ rmntn_
## age         -0.912                                                 
## genderMale  -0.094 -0.066                                          
## genderOther -0.039  0.016  0.031                                   
## beep        -0.072  0.002  0.001  0.001                            
## day         -0.043  0.001  0.002 -0.002  0.008                     
## evnt_nplsn_  0.206  0.003 -0.050  0.012  0.040  0.011              
## rmntn_cntrd  0.015 -0.009 -0.014 -0.005 -0.029 -0.005 -0.076       
## evnt_npl_:_ -0.009  0.001  0.006 -0.001 -0.005  0.022 -0.031 -0.299
tab_model(state_model, show.std = T)
  NA sum
Predictors Estimates std. Beta CI standardized CI p
(Intercept) 0.42 0.12 0.10 – 0.74 0.02 – 0.23 0.010
age -0.01 -0.10 -0.02 – -0.00 -0.19 – -0.02 0.021
gender [Male] -0.28 -0.22 -0.54 – -0.01 -0.43 – -0.01 0.039
gender [Other] -0.16 -0.13 -1.58 – 1.27 -1.28 – 1.02 0.830
beep 0.00 0.00 -0.00 – 0.01 -0.01 – 0.01 0.721
day -0.00 -0.03 -0.01 – -0.00 -0.04 – -0.02 <0.001
event unpleasantness
centered
0.25 0.27 0.23 – 0.28 0.24 – 0.29 <0.001
rumination centered 0.27 0.21 0.25 – 0.28 0.20 – 0.22 <0.001
event unpleasantness
centered × rumination
centered
0.04 0.04 0.03 – 0.05 0.03 – 0.05 <0.001
Random Effects
σ2 0.49
τ00 id 0.86
τ11 id.event_unpleasantness_centered 0.03
ρ01 id 0.66
ICC 0.65
N id 247
Observations 14265
Marginal R2 / Conditional R2 0.164 / 0.708
# assumption checks
check_collinearity(state_model)
plot_model(state_model, type = "diag")
## [[1]]
## `geom_smooth()` using formula 'y ~ x'

## 
## [[2]]
## [[2]]$id
## `geom_smooth()` using formula 'y ~ x'

## 
## 
## [[3]]

## 
## [[4]]
## `geom_smooth()` using formula 'y ~ x'

#check_model(state_model)


# visualizing predicted values
plot_model(state_model)

# goodness of fit indicators
AIC_state <- AIC(state_model)
BIC_state <- BIC(state_model)



# outputs for trait, mean state and state models
tab_model(trait_model, mean_state_model, state_model, show.std = T)
  NA sum NA sum NA sum
Predictors Estimates std. Beta CI standardized CI p std. p Estimates std. Beta CI standardized CI p Estimates std. Beta CI standardized CI p
(Intercept) 0.22 0.11 -0.12 – 0.55 0.01 – 0.21 0.211 0.033 0.14 0.09 -0.11 – 0.39 0.01 – 0.16 0.277 0.42 0.12 0.10 – 0.74 0.02 – 0.23 0.010
age -0.00 -0.05 -0.01 – 0.00 -0.14 – 0.04 0.252 0.252 -0.00 -0.04 -0.01 – 0.00 -0.10 – 0.03 0.290 -0.01 -0.10 -0.02 – -0.00 -0.19 – -0.02 0.021
gender [Male] -0.12 -0.09 -0.39 – 0.16 -0.31 – 0.13 0.408 0.408 -0.05 -0.04 -0.26 – 0.16 -0.21 – 0.13 0.637 -0.28 -0.22 -0.54 – -0.01 -0.43 – -0.01 0.039
gender [Other] 0.05 0.04 -1.39 – 1.49 -1.12 – 1.20 0.946 0.946 0.17 0.14 -0.95 – 1.30 -0.77 – 1.05 0.761 -0.16 -0.13 -1.58 – 1.27 -1.28 – 1.02 0.830
beep 0.01 0.01 -0.00 – 0.01 -0.00 – 0.02 0.081 0.081 0.00 0.01 -0.00 – 0.01 -0.00 – 0.02 0.093 0.00 0.00 -0.00 – 0.01 -0.01 – 0.01 0.721
day -0.00 -0.03 -0.01 – -0.00 -0.04 – -0.02 <0.001 <0.001 -0.00 -0.03 -0.01 – -0.00 -0.04 – -0.02 <0.001 -0.00 -0.03 -0.01 – -0.00 -0.04 – -0.02 <0.001
event unpleasantness
centered
0.31 0.32 0.28 – 0.33 0.29 – 0.35 <0.001 <0.001 0.31 0.32 0.28 – 0.33 0.29 – 0.35 <0.001 0.25 0.27 0.23 – 0.28 0.24 – 0.29 <0.001
trait rumination 0.36 0.28 0.22 – 0.49 0.18 – 0.38 <0.001 <0.001
event unpleasantness
centered × trait
rumination
0.08 0.08 0.05 – 0.11 0.05 – 0.11 <0.001 <0.001
mean state rumi grand
centered
0.91 0.52 0.79 – 1.03 0.45 – 0.58 <0.001
event unpleasantness
centered × mean state
rumi grand centered
0.12 0.09 0.09 – 0.16 0.06 – 0.12 <0.001
rumination centered 0.27 0.21 0.25 – 0.28 0.20 – 0.22 <0.001
event unpleasantness
centered × rumination
centered
0.04 0.04 0.03 – 0.05 0.03 – 0.05 <0.001
Random Effects
σ2 0.56 0.56 0.49
τ00 0.78 id 0.42 id 0.86 id
τ11 0.03 id.event_unpleasantness_centered 0.03 id.event_unpleasantness_centered 0.03 id.event_unpleasantness_centered
ρ01 0.59 id 0.51 id 0.66 id
ICC 0.60 0.46 0.65
N 247 id 247 id 247 id
Observations 14265 14265 14265
Marginal R2 / Conditional R2 0.188 / 0.674 0.372 / 0.659 0.164 / 0.708

coefplot for state rumination

coefplot_state <- 
  plot_model(state_model,
             type = "std",
             rm.terms = c("age", "gender [Male]", "gender [Other]", "beep", "day", "event_unpleasantness_centered"),
             ci.lvl = 0.95,
             std.est = T,
             title = "",
             show.values = TRUE,
             colors = "black",
             axis.labels = c("State rumination * Perceived stress", "State rumination"),
             axis.title = "Standardized β coefficients"
             ) +
             ylim(0, 0.6) +
             theme_minimal() +
             theme(axis.line = element_line(size = .3),
                   axis.text = element_text(size = 10, color = "black"),
                   axis.title.x = element_text(size = 12, color = "black")
                   )
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.
coefplot_state

full model

# building model
full_model <-
  
  lmer(
    NA_sum ~ age + gender + beep + day +
    event_unpleasantness_centered * rumination_centered +  
    event_unpleasantness_centered * mean_state_rumi_grand_centered +
    event_unpleasantness_centered * trait_rumination +
      
    (event_unpleasantness_centered * rumination_centered | id), data = dat_model,
    control = lmerControl(optCtrl=list(ftol_abs=1e-8,xtol_abs=1e-8))
    )
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
## Model failed to converge with max|grad| = 0.00632854 (tol = 0.002, component 1)
# model outputs
summary(full_model)
## Linear mixed model fit by REML ['lmerMod']
## Formula: NA_sum ~ age + gender + beep + day + event_unpleasantness_centered *  
##     rumination_centered + event_unpleasantness_centered * mean_state_rumi_grand_centered +  
##     event_unpleasantness_centered * trait_rumination + (event_unpleasantness_centered *  
##     rumination_centered | id)
##    Data: dat_model
## Control: 
## lmerControl(optCtrl = list(ftol_abs = 0.00000001, xtol_abs = 0.00000001))
## 
## REML criterion at convergence: 30831.5
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -4.8435 -0.4461 -0.0838  0.2763  8.6704 
## 
## Random effects:
##  Groups   Name                                              Variance Std.Dev.
##  id       (Intercept)                                       0.433417 0.65834 
##           event_unpleasantness_centered                     0.020676 0.14379 
##           rumination_centered                               0.030910 0.17581 
##           event_unpleasantness_centered:rumination_centered 0.004586 0.06772 
##  Residual                                                   0.457525 0.67641 
##  Corr             
##                   
##   0.58            
##   0.37  0.03      
##  -0.21 -0.09 -0.31
##                   
## Number of obs: 14265, groups:  id, 247
## 
## Fixed effects:
##                                                                Estimate
## (Intercept)                                                   0.0756341
## age                                                          -0.0020003
## genderMale                                                    0.0240987
## genderOther                                                   0.1904986
## beep                                                          0.0006876
## day                                                          -0.0039193
## event_unpleasantness_centered                                 0.2476894
## rumination_centered                                           0.2753280
## mean_state_rumi_grand_centered                                0.8390301
## trait_rumination                                              0.1332307
## event_unpleasantness_centered:rumination_centered             0.0317497
## event_unpleasantness_centered:mean_state_rumi_grand_centered  0.0616133
## event_unpleasantness_centered:trait_rumination                0.0411148
##                                                              Std. Error t value
## (Intercept)                                                   0.1272319   0.594
## age                                                           0.0030174  -0.663
## genderMale                                                    0.1038705   0.232
## genderOther                                                   0.5471433   0.348
## beep                                                          0.0026971   0.255
## day                                                           0.0007744  -5.061
## event_unpleasantness_centered                                 0.0116109  21.333
## rumination_centered                                           0.0167922  16.396
## mean_state_rumi_grand_centered                                0.0609793  13.759
## trait_rumination                                              0.0513502   2.595
## event_unpleasantness_centered:rumination_centered             0.0078451   4.047
## event_unpleasantness_centered:mean_state_rumi_grand_centered  0.0170833   3.607
## event_unpleasantness_centered:trait_rumination                0.0131559   3.125
## 
## Correlation matrix not shown by default, as p = 13 > 12.
## Use print(x, correlation=TRUE)  or
##     vcov(x)        if you need it
## optimizer (nloptwrap) convergence code: 0 (OK)
## Model failed to converge with max|grad| = 0.00632854 (tol = 0.002, component 1)
tab_model(full_model, show.std = T)
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
## Model failed to converge with max|grad| = 0.00403381 (tol = 0.002, component 1)
  NA sum
Predictors Estimates std. Beta CI standardized CI p std. p
(Intercept) 0.08 0.07 -0.17 – 0.33 -0.00 – 0.15 0.552 0.057
age -0.00 -0.02 -0.01 – 0.00 -0.09 – 0.04 0.507 0.508
gender [Male] 0.02 0.02 -0.18 – 0.23 -0.14 – 0.18 0.817 0.816
gender [Other] 0.19 0.15 -0.88 – 1.26 -0.71 – 1.02 0.728 0.728
beep 0.00 0.00 -0.00 – 0.01 -0.01 – 0.01 0.799 0.799
day -0.00 -0.03 -0.01 – -0.00 -0.04 – -0.02 <0.001 <0.001
event unpleasantness
centered
0.25 0.26 0.22 – 0.27 0.24 – 0.28 <0.001 <0.001
rumination centered 0.28 0.22 0.24 – 0.31 0.19 – 0.24 <0.001 <0.001
mean state rumi grand
centered
0.84 0.48 0.72 – 0.96 0.41 – 0.54 <0.001 <0.001
trait rumination 0.13 0.10 0.03 – 0.23 0.03 – 0.18 0.009 0.009
event unpleasantness
centered × rumination
centered
0.03 0.03 0.02 – 0.05 0.02 – 0.05 <0.001 <0.001
event unpleasantness
centered × mean state
rumi grand centered
0.06 0.05 0.03 – 0.10 0.02 – 0.07 <0.001 <0.001
event unpleasantness
centered × trait
rumination
0.04 0.04 0.02 – 0.07 0.02 – 0.07 0.002 0.002
Random Effects
σ2 0.46
τ00 id 0.43
τ11 id.event_unpleasantness_centered 0.02
τ11 id.rumination_centered 0.03
τ11 id.event_unpleasantness_centered:rumination_centered 0.00
ρ01 0.58
0.37
-0.21
ICC 0.52
N id 247
Observations 14265
Marginal R2 / Conditional R2 0.424 / 0.725
# assumption checks
check_collinearity(full_model)
plot_model(state_model, type = "diag")
## [[1]]
## `geom_smooth()` using formula 'y ~ x'

## 
## [[2]]
## [[2]]$id
## `geom_smooth()` using formula 'y ~ x'

## 
## 
## [[3]]

## 
## [[4]]
## `geom_smooth()` using formula 'y ~ x'

#check_model(full_model)


# visualizing predicted values
plot_model(full_model)

# goodness of fit indicators
AIC_full <- AIC(full_model)
BIC_full <- BIC(full_model)

coefplots for full model

# plot for interactions (colored afterwards in photoshop)
coefplot_interactions <- 
  plot_model(full_model,
             type = "std",
             rm.terms = c("rumination_centered", "trait_rumination", "mean_state_rumi_grand_centered", "age", "gender [Male]", "gender [Other]",   "beep", "day", "event_unpleasantness_centered"),
             ci.lvl = 0.95,
             std.est = T,
             title = "",
             show.values = TRUE,
             colors = "black",
             axis.labels = c("Trait rumination * Perceived stress", "Mean state rumination * Perceived stress", "State rumination * Perceived stress"),
             axis.title = "Standardized β coefficients"
             ) +
             ylim(0, 0.1) +
             theme_minimal() +
             theme(axis.text = element_text(size = 10, color = "black"),
                   axis.title.x = element_text(size = 12, color = "black"),
                   axis.line = element_line(size = .3)
                   )
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
## Model failed to converge with max|grad| = 0.00403381 (tol = 0.002, component 1)
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.
coefplot_interactions

# plot for main effects (colored afterwards in photoshop)
coefplot_maineffects <- 
  plot_model(full_model,
             type = "std",
             terms = c("rumination_centered", "mean_state_rumi_grand_centered", "trait_rumination"),
             ci.lvl = 0.95,
             std.est = TRUE,
             title = "",
             show.values = TRUE,
             colors = "black",
             axis.labels = c("Trait rumination", "Mean state rumination", "State rumination"),
             axis.title = "Standardized β coefficients"
             ) +
             ylim(0, 1) +
             theme_minimal() +
             theme(axis.text = element_text(size = 10, color = "black"),
                   axis.title.x = element_text(size = 12, color = "black"),
                   axis.line = element_line(size = .3)
                   )
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
## Model failed to converge with max|grad| = 0.00403381 (tol = 0.002, component 1)
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.
coefplot_maineffects

saving full model for bootstrapping

saveRDS(full_model, "saved_models/full_model.rds")